home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / ewl / ewl_menu_base.h < prev    next >
C/C++ Source or Header  |  2006-01-09  |  2KB  |  58 lines

  1. #ifndef __EWL_MENU_BASE_H__
  2. #define __EWL_MENU_BASE_H__
  3.  
  4. /**
  5.  * @file ewl_menu_base.h
  6.  * @defgroup Ewl_Menu_Base Menu_Base: The Basic Menu Functionality
  7.  * @brief Defines the basic menu classes that are extended to an actual menu
  8.  * implementation by inheriting classes such as Ewl_Menu and Ewl_Imenu.
  9.  *
  10.  * @{
  11.  */
  12.  
  13. /**
  14.  * @themekey /menu_base/file
  15.  * @themekey /menu_base/group
  16.  */
  17.  
  18. /**
  19.  * Provides the basic functionality common to the various menu classes.
  20.  */
  21. typedef struct Ewl_Menu_Base Ewl_Menu_Base;
  22.  
  23. /**
  24.  * @def EWL_MENU_BASE(menu)
  25.  * Typecasts a pointer to an Ewl_Menu_Base pointer.
  26.  */
  27. #define EWL_MENU_BASE(menu) ((Ewl_Menu_Base *) menu)
  28.  
  29. struct Ewl_Menu_Base
  30. {
  31.     Ewl_Menu_Item   item;   /**< Inherit from Ewl_Menu_Item */
  32.     Ewl_Widget     *popup;  /**< The popup portion of the menu */
  33.     Ewl_Widget     *popbox; /**< Box for layout in popup */
  34.     int             hold;   /**< Indicates not to hide this on a deselect */
  35. };
  36.  
  37. int ewl_menu_base_init(Ewl_Menu_Base *menu);
  38.  
  39. /*
  40.  * Internally used callbacks, override at your own risk.
  41.  */
  42. void ewl_menu_base_expand_cb(Ewl_Widget *w, void *ev_data, void *user_data);
  43. void ewl_menu_base_collapse_cb(Ewl_Widget *w, void *ev_data, void *user_data);
  44. void ewl_menu_base_destroy_cb(Ewl_Widget *w, void *ev_data, void *user_data);
  45.  
  46. void ewl_menu_base_popup_show_cb(Ewl_Widget *w, void *ev_data, 
  47.                         void *user_data);
  48. void ewl_menu_base_popup_hide_cb(Ewl_Widget *w, void *ev_data, 
  49.                         void *user_data);
  50. void ewl_menu_base_popbox_key_down_cb(Ewl_Widget *w, void *ev_data, 
  51.                         void *user_data);
  52.  
  53. /**
  54.  * @}
  55.  */
  56.  
  57. #endif
  58.